/**
 * 用户信息查询工具
 * 从数据库获取用户信息
 */

const dbPools = require("./database");
const logger = require("./logger");

/**
 * 根据union_id获取用户信息
 * @param {string} union_id - 飞书union_id
 * @param {string} dbName - 数据库名称 ('primary' | 'secondary')，默认使用主数据库
 * @returns {Promise<Object|null>} 用户信息对象或null
 */
const getUser = async (union_id, dbName = 'primary') => {
  if (!union_id) {
    logger.warn("getUser: union_id为空");
    return null;
  }

  const dbPool = dbPools[dbName];
  if (!dbPool) {
    logger.error(`数据库 ${dbName} 不存在或未配置`);
    throw new Error(`数据库 ${dbName} 不存在或未配置`);
  }

  try {
    logger.debug("查询用户信息", { union_id, database: dbName });
    const [rows] = await dbPool.query("SELECT * FROM user_info WHERE union_id = ?", [union_id]);
    return rows[0] || null;
  } catch (error) {
    logger.error("查询用户信息失败", error);
    throw error;
  }
};

module.exports = { getUser };